/*@author: Ana Rebollo Pin
 * 
 */
package com.bonshotels.DomainLayer.CtrlDades;

import java.util.Set;
import com.bonshotels.DomainLayer.DomainModel.Poblacio;
import com.bonshotels.Excepcions.PoblacioNoExisteix;

	/**
	 * Interface CtrlPoblacio.
	 * 
	 * Utilitzem aquesta interface per demanar a la capa de dades els objectes de 
	 * tipus Poblacio.
	 * Utilitzem una interficie per evitar lacoblament entre la capa de dades, on 
	 * realment estaran implementats els metodes, i la capa de domini.
	 * Aquesta classe es un producte abstracte dins del patro factoria abstracta.
	 */

public interface ICtrlPoblacio {
	/**
     * Obte de la base de dades lobjecte Poblacio que sindentifica per el string 
     * que rep com ha parametre
     *
     * @param nom clau primaria de la Poblacio que volem obtenir.
     * @return lobjecte poblacio que estaba enmagatzemat a la capa de dades amb 
     * clau primaria igual al String nom. 
	 * @throws PoblacioNoExisteix 
     */
	public Poblacio obte(String nom) throws PoblacioNoExisteix;
	
	public boolean existeix(String nom);
	
	/**
     * Obte de la base de dades totes les Poblacio del sistema.
     * @return Obte de la capa de dades tots els objectes poblacio que estan guardats.
     */
	public Set<Poblacio> obteTots();
}
